#pragma once

#include "Object/Object.h"

#include "Containers/Vector.h"

#include "TestStruct.h"

#include "TestObject.m.h"




RCLASS()
class RTestObject : public RObject
{
    ROBJECT

public:
    RFIELD()
    int s=5;
    RFIELD()
    CString str = U"asfasd";
    RFIELD()
    bool Bool = true;
    RFIELD()
    float Float = .1f;
    RFIELD()
    float Double = .2;

    RFIELD()
    TVector<int> IntArray = { 1,2,34,5 };
    RFIELD()
    TVector<STestStruct> STRUCTs;

    RFIELD()
    TMap<int,float> Map;

    RPROPERTY(Name="TestVirtualProperty",Getter="GetVirtualInt",Setter= "SetVirInt")


    int GetVirtualInt()
    {
        return TestVirtualInt;
    }

    void SetVirInt(const int& InVae)
    {
        TestVirtualInt=InVae;
    }


    int TestVirtualInt=0;
};

//using RTestObject::SSuper = RObject;